From 367ee7d103cf9f670c3925d555edf6f6a5b9d8d5 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Tue, 7 Mar 2017 22:17:25 +0100
Subject: [PATCH] Fix get_python_inc() for cross-compilation

When we are cross compiling, doing os.path.dirname(sys.executable) to
get the build directory is incorrect, because we're executing the host
Python to build things for the target. Instead, we should use the
project_base variable.

This fixes cross-compilation, which was adding incorrect header paths
pointing to the location where the host Python was built:

/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc -fPIC -fno-strict-aliasing \
  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \
  -I/usr/include -I. -IInclude -I./Include -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \
  -I/home/thomas/projets/buildroot/output/host/usr/bin/Include -I/home/thomas/projets/buildroot/output/host/usr/bin \
  -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.c \
  -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.o

This patch allows to fix the
/home/thomas/projets/buildroot/output/host/usr/bin/Include and
/home/thomas/projets/buildroot/output/host/usr/bin paths that are
incorrectly added to the header paths.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Asaf: update for 2.7.17]
Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
---
 Lib/distutils/sysconfig.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index 1a4b792644..14c7d81c48 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -85,7 +85,7 @@ def get_python_inc(plat_specific=0, prefix=None):
     if os.name == "posix":
         if python_build:
             if sys.executable:
-                buildir = os.path.dirname(sys.executable)
+                buildir = project_base
             else:
                 # sys.executable can be empty if argv[0] has been changed
                 # and Python is unable to retrieve the real program name
-- 
2.20.1

